home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / comm2 / zpont311.lha / zpoint-3.11 / Rexx / KillAuthorGui.zprx < prev    next >
Text File  |  1995-03-09  |  7KB  |  304 lines

  1. /*
  2.    KillUser.rexx 1.0 (16.1.94) by Ueli Kaufmann
  3.    ARexx skript für Zodiac's Point V37.113ß und apig.library
  4.                                                 ^^^^
  5.                                   (befindet sich auf FishDisk 634)
  6.  
  7. Nutzen:
  8. -------
  9. 'Enfernt' User mittels Such-Pattern aus Brettern.
  10. */
  11.  
  12.  
  13.  
  14. /* benoetigte Libraries laden */
  15. if(~show('l',"rexxsupport.library")) then
  16.    x = addlib("rexxsupport.library",0,-30,0)
  17.  
  18. if(~show('l',"apig.library")) then
  19.    x = addlib("apig.library",0,-30,0)
  20.  
  21.  
  22.  /* apig vorbereiten */
  23. call Set_APIG_Globals()
  24.  
  25. idNME = 1      /* Gadget-ID fuers Namen-Gadget */
  26. idCYC = 2      /* Gadget-ID fuers Mode-Gadget */
  27. idSTR = 3      /* Gadget-ID fuers Start-Gadget */
  28.  
  29.  
  30. screen       = LockPubScreen("ZPoint")      /* gonna put our window  */
  31.                                             /* upon ZPoint screen    */
  32.  
  33. if screen = null() then
  34. do
  35.         ADDRESS "rexx_ced"
  36.    OKAY1 "ZPoint ist noch nicht gestartet.."
  37.    exit 10
  38. end
  39.  
  40. ADDRESS "ZPoint"
  41. OPTIONS RESULTS
  42.  
  43.  
  44. scrvinfo     = GetVisualInfo(screen)        /* NewGadgets need this  */
  45.  
  46. scrfont      = GETVALUE(screen,40,4,'p')    /* NewGadgets need this  */
  47.                                             /* points to TextAttr    */
  48.  
  49. glistpointer = AllocVec(4,MEMF_CLEAR)       /* a pointer for context */
  50.  
  51. conxgad      = CreateContext(glistpointer)  
  52.  
  53. prevGadget = conxgad
  54.  
  55.  
  56. /* Namen String-Gadget */
  57.  
  58. /*************************/
  59.  
  60. newgadx = MakeNewGadget(scrvinfo,scrfont,90,18,260,14,"Pattern:",
  61.                        ,null(),idNME,null())
  62.  
  63. msgAddr = ""
  64. WHICHLEVEL
  65. level = RESULT
  66.  
  67. if level = "BOARD" then
  68. do
  69.    MESSAGEINFO AUTHOR  /* StringGadget mit dem akt. Namen fuellen */
  70.    msgAddr = RESULT
  71. end
  72. prevGadget = CreateGadget(STRING_KIND,prevGadget,newgadx,
  73.                          ,GTST_MaxChars, 80,
  74.                          ,GTST_String, msgAddr,
  75.                          ,TAG_DONE,0)
  76.  
  77. /*************************/
  78.  
  79. call SetNewGadget(newgadx,scrvinfo,scrfont,16,40,56,12,"Start",
  80.                  ,null(),idSTR,null())
  81.  
  82. prevGadget = CREATEGADGET(BUTTON_KIND,prevGadget,newgadx,
  83.                          ,TAG_DONE,0)
  84.  
  85.  
  86. /*************************/
  87.  
  88. call SetNewGadget(newgadx,scrvinfo,scrfont,90,40,260,12,null(),
  89.                  ,null(),idCYC,null())
  90.  
  91. theLabels = build_labels()
  92.  
  93. prevGadget = CREATEGADGET(CYCLE_KIND,prevGadget,newgadx,
  94.                          ,GTCY_LABELS, theLabels,
  95.                          ,TAG_DONE,0)
  96.  
  97.  
  98. /*************************/
  99.  
  100.  
  101. wintitle = "ZPoint Aufräumen"
  102. winidcmp = CLOSEWINDOW+GADGETUP
  103. winflags = WINDOWCLOSE+WINDOWDRAG+WINDOWDEPTH+ACTIVATE
  104.  
  105. portname = "ZPOINT_KILLMSG"
  106.  
  107. p = openport(portname)
  108.  
  109. /* open window, last parm in OPENWINDOW call points to our gadgets  */
  110. window = OpenWindow(portname,0,0,366,60,0,1,winidcmp,winflags,wintitle,
  111.                    ,screen,0,null(),null(),conxgad)
  112.  
  113. call UnlockPubScreen(null(),screen)
  114.  
  115. call GT_RefreshWindow(window,null())  /* need after opening window */
  116.  
  117.  
  118. /**********************************/
  119.  
  120.  
  121. exitme = 0
  122. do while exitme = 0
  123.  
  124.    x = waitpkt(portname)
  125.    do forever 
  126.       msg = getpkt(portname)
  127.       if msg = '0000 0000'x
  128.          then leave
  129.  
  130.       msgclass  = getarg(msg,0)
  131.       msgcode  = getarg(msg,1)
  132.       msggadadr= getarg(msg,8)
  133.       msggadid  = getarg(msg,9)
  134.       x = reply(msg,0)  
  135.  
  136.       select
  137.          when msgclass = CLOSEWINDOW then    /* Close-Gadget */
  138.             exitme = 1
  139.  
  140.          when msgclass = GADGETUP then       /* Gadget-UP */
  141.          do
  142.             select
  143.                when msggadid = idNME then
  144.                do
  145.                msgAddr = GETSTRGAD(window,idNME,null())
  146. /*
  147.                   success = 0
  148.  
  149.                   WHICHLEVEL
  150.                   level = RESULT
  151.  
  152.                   if level = "MAINMENU" then
  153.                   do
  154.                      if allBoards = 0 then
  155.                      do
  156.                         BOARDMENU
  157.                         REQUESTNOTIFY "Bitte stellen Sie den Nachrichtenbalken" '0a'x "auf das zu bearbeitende Brett..")
  158.                      end
  159.                      else
  160.                      do
  161.                         BOARDMENU      /* ins Brettmenu steppen */
  162.                         JUMPTOBOARD 4  /* Balken aufs erste oeffentliche Brett stellen */
  163.                         ENTERBOARD     /* und eintauchen */
  164.                         success = 1
  165.                      end
  166.                   end
  167.                   else  /* boardmenu oder board */
  168.                   do
  169.                      if level = "BOARD" then
  170.                      do
  171.                         if allBoards = 0 then
  172.                         do
  173.                            JUMPTOMESSAGE 1
  174.                            success = 1
  175.                         end
  176.                         else
  177.                         do
  178.                            BOARDMENU      /* ins Brettmenu steppen */
  179.  
  180.                            JUMPTOBOARD 4  /* Balken aufs erste oeffentliche Brett stellen */
  181.                            ENTERBOARD     /* und eintauchen */
  182.                            success = 1
  183.                         end
  184.                      end
  185.                      else  /* boardmenu */
  186.                      do
  187.                         ENTERBOARD     /* und eintauchen */
  188.                         success = 1
  189.                      end
  190.                   end
  191.  
  192.                   if success ~= 0 then
  193. */
  194.                      x = kill_user()
  195.                end
  196.  
  197.  
  198.                when msggadid = idCYC then
  199.                do
  200.                   allBoards = msgcode
  201.                   if allBoards = 0 then
  202.                      REQUESTNOTIFY "alle Bretter"
  203.                   else
  204.                      REQUESTNOTIFY "aktuelles Brett"
  205.                end
  206.  
  207.  
  208.                when msggadid = idSTR then
  209.                do
  210.                   x = kill_user()
  211.                end
  212.  
  213.  
  214.                otherwise
  215.                   nop
  216.  
  217.             end
  218.          end
  219.  
  220.          otherwise
  221.             nop
  222.       end
  223.    end
  224. end
  225.  
  226. call CloseWindow(window)
  227.  
  228. call FreeVisualInfo(scrvinfo)
  229.  
  230. call FreeGadgets(conxgad)
  231.  
  232. call FreeThis(newgadx)
  233.  
  234. call freethis(theLabels)
  235.  
  236. call FreeVec(glistpointer)
  237.  
  238. exit
  239.  
  240.  
  241.  
  242. kill_user:
  243.    cnt = 0
  244.    JUMPTOMESSAGE 1   /* Balken auf oberste Nachricht stellen */
  245.    exitme = 0
  246.    lstring = "Name " || msgAddr
  247.    do while exitme = 0
  248.       JUMPTOMESSAGE lstring
  249.       if rc ~= 0 then
  250.       do
  251.          say "gefunden"
  252.          DELETE ONE
  253.          DOWN        /* sonst gibts 'ne nette Endlos-Schleife :( */
  254.       end
  255.       else
  256.       do
  257.          say "addio"
  258.          exitme = 1
  259.       end
  260.  
  261.       cnt = cnt + 1
  262.       if cnt = 50 then
  263.       do
  264.          say "Endlos-Schleife.. :-("
  265.          exitme = 1
  266.       end
  267.    end
  268.    exitme = 0
  269. return(0)
  270.  
  271.  
  272. build_labels:
  273.      mlabels = MAKEPOINTER(0,0,12,MEMF_CLEAR) /* an array of 3 pointers */
  274.                                               /* 4bytes * 3 = 12        */
  275.  
  276.      /* label text */
  277.      ltxt = "Alle Bretter bearbeiten" 
  278.  
  279.      /* buffer for label text, the memory is owned by mlabels */
  280.      lbuf = MAKEPOINTER(mlabels,0,length(ltxt)+1,MEMF_CLEAR)
  281.  
  282.      /* copy label text into buffer */
  283.      call export(lbuf,ltxt)
  284.  
  285.      /* set array slot to lbuf address */
  286.      call SETVALUE(mlabels,0,4,'p',lbuf)
  287.  
  288. /******/
  289.  
  290.      /* label text */
  291.      ltxt = "Aktuelles Brett bearbeiten" 
  292.  
  293.      /* buffer for label text, the memory is owned by mlabels */
  294.      lbuf = MAKEPOINTER(mlabels,0,length(ltxt)+1,MEMF_CLEAR)
  295.  
  296.      /* copy label text into buffer */
  297.      call export(lbuf,ltxt)
  298.  
  299.      /* set array slot to lbuf address */
  300.      call SETVALUE(mlabels,4,4,'p',lbuf)
  301.  
  302.  
  303. return mlabels
  304.